﻿package com.ease.platform.model.type
{
	import com.ease.common.enums.OptionalEnum;
	import com.ease.lang.Enum;
	import com.ease.lang.EnumConstants;
	import com.ease.platform.model.type.PermissionDimensionMetaType;

	[Bindable]
	[RemoteClass(alias="com.ease.platform.model.type.PermissionDimensionMetaType")]

	public class PermissionDimensionMetaType extends Enum
	{
		/* static init */
		{ initEnum(PermissionDimensionMetaType); }

		/* Constants */
		public static const DefaultDimension:PermissionDimensionMetaType = new PermissionDimensionMetaType("DefaultDimension", 1, "默认维度");
		public static const LocationDimension:PermissionDimensionMetaType = new PermissionDimensionMetaType("LocationDimension", 2, "区域维度");
		public static const NetworkSpecialtyDimension:PermissionDimensionMetaType = new PermissionDimensionMetaType("NetworkSpecialtyDimension", 3, "专业维度");
		public static const MenuDimension:PermissionDimensionMetaType = new PermissionDimensionMetaType("MenuDimension", 4, "主菜单");
		public static const ButtonDimension:PermissionDimensionMetaType = new PermissionDimensionMetaType("ButtonDimension", 5, "按钮");
		public static const RightClickMenuDimension:PermissionDimensionMetaType = new PermissionDimensionMetaType("RightClickMenuDimension", 6, "右键菜单");
		public static const ExplorerDimension:PermissionDimensionMetaType = new PermissionDimensionMetaType("ExplorerDimension", 7, "文件夹");
		public static const PerspectiveViewDimension:PermissionDimensionMetaType = new PermissionDimensionMetaType("PerspectiveViewDimension", 8, "透视图");
		public static const AttributeTypeDimension:PermissionDimensionMetaType = new PermissionDimensionMetaType("AttributeTypeDimension", 9, "实体属性维度");

		private var _value:int;
		private var _text:String;

		/*public*/ function PermissionDimensionMetaType(name:String=null ,value:int=0 ,text:String=null) {
			super.name = name;
			this._value = value;
			this._text = text;
		}

		public function get value():int  { return this._value; }
		public function get text():String  { return this._text; }

		/* constant query */
		public static function getEnumConstants():Array {
			return Enum.getEnumConstants(PermissionDimensionMetaType);
		}

		public static function get(constantName:String, caseSensitive:Boolean = false):PermissionDimensionMetaType {
			return PermissionDimensionMetaType(Enum.get(PermissionDimensionMetaType, constantName, caseSensitive));
		}
	}
}